#include<stdio.h>

#define warning(text)\
        printf("zhang:" #text "liang\n")

#define funname(type,io) type##_io##_func()	// 宏参数的连接问题，根据指定的参数，定制相应的函数名

int funname(int,output)

{
        printf("int ....output\n");
}

#define AD(a)	id##a

#define FUN(a)	get##a

int get1(int a, int b)
{
	printf("get1 output = %d\n", a + b);
	return a + b;
}


#define _A(num)	int(num)

#define  ___ANONYMOUS1(var, line)  var##line 
#define  __ANONYMOUS0(line)  ___ANONYMOUS1( get, line) 
//#define  ANONYMOUS(type)  __ANONYMOUS0(type, __LINE__)

int main()
{
		int id1 = 1;
		int i = 1;
        warning(xxxx);

        funname(int,asdf);

		printf(" id1 = %d\n", AD(1));

		printf("get invoke = %d\n", FUN(1)(3, 4));

		printf("get invoke = %d\n", __ANONYMOUS0(1)(3, 4));
}

//// gcc -E jinghao.c
/*
int int_io_func()

{
        printf("int ....output\n");
}

int main()
{
        printf("zhang:" "xxxx" "liang\n");

        int_io_func();
}
*/